package $1_2processcontrol;

public class ForClass {
	// Java使用最广泛的是for循环
	// for循环的功能非常强大，它使用计数器实现循环。
	// for循环会先初始化计数器，然后，在每次循环前检测循环条件，在每次循环后更新计数器。计数器变量通常命名为i。
	// 注意for循环的初始化计数器总是会被执行，并且for循环也可能循环0次。
	// 使用for循环时，千万不要在循环体内修改计数器！在循环体中修改计数器常常导致莫名其妙的逻辑错误。
	
	public static void main(String[] args) {
		// 把1到100求和用for循环改写一下
		int sum = 0;
        for (int i=1; i<=100; i++) {
            sum = sum + i;
        }
        System.out.println(sum);	// 5050
        
        // 对一个整型数组的所有元素求和
        int[] ns = { 1, 4, 9, 16, 25 };
        sum = 0;
        for (int i=0; i<ns.length; i++) {
            System.out.println("i = " + i + ", ns[i] = " + ns[i]);
            sum = sum + ns[i];
        }
        System.out.println("sum = " + sum);

        System.out.println("-----我是分割线-----");
        // 如果希望只访问索引为奇数的数组元素，应该把for循环改写为
        for (int i=0; i<ns.length; i=i+2) {
            System.out.println(ns[i]);
        }
        System.out.println("-----我是分割线-----");
        // Java还提供了另一种for each循环，它可以更简单地遍历数组
        for (int n : ns) {
            System.out.println(n);
        }

        System.out.println("-----我是分割线-----");
        // 用for循环倒序输出每一个元素
        for (int i=ns.length-1;i>=0;i--) {
            System.out.println(ns[i]);
        }
        System.out.println("-----我是分割线-----");
        // for each循环对数组每个元素求和
        sum = 0;
        for(int n : ns){
        	sum = sum + n;
        }
        System.out.println(sum);
        
        // 计算圆周率
        double pi =0;
        double f = 1.0;
        double m = 1;
        for(int i =0;i<1000000000;i++){
        	pi += 4*(f/m) ;
        	f *= -1.0;
        	m += 2.0;
        	
        }
        System.out.println("pi=="+pi);
        
	}

}
